/*
 * UserGenerationParameters.java
 *
 * Created on Piatok, 2007, november 2, 22:22
 *
 */

package logic.gridSimInterface.user;

import logic.distributions.AbstractGenerator;
import logic.distributions.ConstantGenerator;
import logic.distributions.UniformGenerator;
import logic.gridSimInterface.SimTags;

/**
 * Zoznam vsetkych parametrov uzivatela.
 */
public class UserGenerationParameters {
    
    /**
     * pozadovany operacny system, musi byt != ""
     */
    public String os;
    /**
     * pozadovana architektura - Sun, Intel, ... - musi byt != ""
     */
    public String architecture;
    /**
     * pocet uloh, musi byt > 0
     */
    public int tasksCount;
    /**
     * dlzka ulohy v MIPS(million instruction per second)
     */
    public AbstractGenerator taskLength;
    /**
     * velkost ulohy v bajtoch na zaciatku vypoctu
     */
    public AbstractGenerator fileSize;
    /**
     * velkost ulohy v bajtoch po skonceni vypoctu
     */
    public AbstractGenerator outputSize;

    /**
     * typ generovanych uloh - hodnoty podla SimTags.GRIDLET_TYPE_*
     */
    public int gridletType;

    /**
     * rozdelenie vzniku uloh v case - ma zmysel, iba ak gridletType != SIMPLE
     */
    public AbstractGenerator startTime;

    /**
     * pocet uloh, ktore sa zretazia - ma zmysel, iba ak gridletType == WORKFLOW
     */
    public int workflow;

    public UserGenerationParameters() {
            os = "Linux";
            architecture = "Intel";
            tasksCount = 50;
            taskLength = new ConstantGenerator();
            fileSize = new ConstantGenerator();
            outputSize = new ConstantGenerator();
            gridletType = SimTags.GRIDLET_TYPE_SIMPLE;
            startTime = new UniformGenerator();
            workflow = 10;
    }
    
}
